package com.qf.application.commons.exception;

import com.qf.application.commons.utils.R;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

// 项目的全局异常管理器
@RestControllerAdvice
@Slf4j
public class EmpExceptionHandler {

    // 系统异常
    @ExceptionHandler(Exception.class) // 只有抛出的异常是Exception的子类就会调用这个方法
    public R systemException(Exception e) {

        // 1.记录异常的信息到日志文件
        log.error("系统异常", e);

        // 2.提示用户
        return R.error("系统繁忙，请稍后再试！");
    }

    // 业务异常
    @ExceptionHandler(BusinessException.class) // 抛出的异常是BusinessException的子类就会调用这个方法
    public R businessException(BusinessException e){
        // 1.记录异常的信息到日志文件
        log.error("系统异常", e);
        // 2.提示用户
        return R.error(e.getMsg()).put("code",e.getCode());
    }
}
